﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace NetFrameworkExtensions.Utils
{
  public interface IReadonlyReference
  {
    object Value { get; }

    bool CanChange { get; }

    event EventHandler<ValueChangedEventArgs<object>> UntypedValueChanged;
  }

  public interface IReadonlyReference<T> : IReadonlyReference
  {
    new T Value { get; }

    event EventHandler<ValueChangedEventArgs<T>> ValueChanged;
  }
}
